package com.yida.system.service;

import java.util.List;

import com.yida.system.api.domain.SysSms;

/**
 * 手机短信记录Service接口
 * 
 * @author hmh
 * @date 2022-10-26
 */
public interface ISysSmsService {
    /**
     * 查询手机短信记录
     * 
     * @param smsId 手机短信记录主键
     * @return 手机短信记录
     */
    public SysSms selectSysSmsBySmsId(Long smsId);

    /**
     * 查询手机短信记录列表
     * 
     * @param sysSms 手机短信记录
     * @return 手机短信记录集合
     */
    public List<SysSms> selectSysSmsList(SysSms sysSms);

    /**
     * 新增手机短信记录
     * 
     * @param sysSms 手机短信记录
     * @return 结果
     */
    public int insertSysSms(SysSms sysSms);

    /**
     * 新增手机短信记录
     * 
     * @param sysSms 手机短信记录
     * @param smsCodeExpiration 过期时间
     * @return
     */
    public int insertSysSms(SysSms sysSms, Long smsCodeExpiration);

    /**
     * 修改手机短信记录
     * 
     * @param sysSms 手机短信记录
     * @return 结果
     */
    public int updateSysSms(SysSms sysSms);

    /**
     * 批量删除手机短信记录
     * 
     * @param smsIds 需要删除的手机短信记录主键集合
     * @return 结果
     */
    public int deleteSysSmsBySmsIds(Long[] smsIds);

    /**
     * 清除手机短信
     * 
     * @return
     */
    public int cleanSmsInfo();

    /**
     * 删除手机短信记录信息
     * 
     * @param smsId 手机短信记录主键
     * @return 结果
     */
    public int deleteSysSmsBySmsId(Long smsId);

    /**
     * 发送手机短信
     * 
     * @param phonenumber 手机号
     * @return 结果
     */
    public SysSms sendSms(String phonenumber);

    /**
     * 自定义短信发送
     * 
     * @param sysSms 短信内容主体
     * @return
     */
    public SysSms sendSms(SysSms sysSms);

    /**
     * 自定义授权短信发送
     * 
     * @param sysSms 短信内容主体
     * @return
     */
    public SysSms sendInnerSms(SysSms sysSms);

    /**
     * 验证短信内容
     * 
     * @param sysSms 手机短信记录
     * @return 结果
     */
    public int verifySms(SysSms sysSms, int type);

    /**
     * 根据手机号码删除短信
     * 
     * @param phonenumber 手机号
     * @param type 类型
     * @return
     */
    public int deleteSysSmsByPhonenumber(String phonenumber, Integer type);

    /**
     * 根据手机号码删除短信
     * 
     * @param phonenumber 手机号
     * @param type 类型
     * @return
     */
    public int deleteSysSmsByPhonenumber(String phonenumber, Integer type, String smsSource);

}
